#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Módulos 
import sys, gtk, pygame, utils, objetos
from pygame.locals import *

# Constantes

# Clases
# ---------------------------------------------------------------------
# clases para representar los carteles a mover
class Accion(pygame.sprite.Sprite):
	def __init__(self,rect,sonidourl=""):		
		self.rect = pygame.Rect(rect)
		self.clicked = False
		self.sonido = pygame.mixer.Sound("sounds/harp.ogg")
			
# ---------------------------------------------------------------------

# verifica si las palabras estan ordenadas			
def ejercicios_completos(carteles):
	for item in carteles:
		if item.correcta == False:
			return False				
	#print("Palabra ordenada")
	return True	
			
def dibujar(screen,cursor_picture, clock):
    salir = 0
    background_image = utils.load_image('images/fondo1_2.png')
    #boton de la flecha para continuar
    btn_adelante = objetos.BotonAdelante()
    btn_atras = objetos.BotonAtras()
    #texto superior derecho que indica el numero de clase
    clase1, clase1_rect = utils.texto_clase("Clase 1", 750*utils.RES, 15*utils.RES)
           
    titulo, titulo_rect = utils.texto_subtitulo_azul("¿QUÉ ESTÁ PASANDO EN ESTA CIUDAD?", 400*utils.RES, 40*utils.RES)
    titulo_sub, titulo_sub_rect = utils.texto_subtitulo_azul("...................................................", 400*utils.RES, 50*utils.RES)
    linea1,linea1_rect = utils.texto_normal('Parece que Trueno encontró una', 640*utils.RES,120*utils.RES)
    linea2,linea2_rect = utils.texto_normal('pista clave para resolver el', 620*utils.RES,150*utils.RES)
    linea3,linea3_rect = utils.texto_normal('mensaje anónimo que nos', 615*utils.RES,180*utils.RES)
    linea4,linea4_rect = utils.texto_normal('encomendó la ADE.', 590*utils.RES,210*utils.RES)
    linea5,linea5_rect = utils.texto_normal('Haz click en aquellas acciones', 630*utils.RES,240*utils.RES)
    linea6,linea6_rect = utils.texto_normal('que consideres que están', 610*utils.RES,270*utils.RES)
    linea7,linea7_rect = utils.texto_normal('dañando el medio ambiente.', 625*utils.RES,300*utils.RES)
           
    paisaje = utils.load_image('images/c1_paisaje.png', False)
    
    acciones = (Accion((20*utils.RES,70*utils.RES,330*utils.RES,50*utils.RES)),
    Accion((70*utils.RES,340*utils.RES,50*utils.RES,150*utils.RES)),
    Accion((270*utils.RES,230*utils.RES,70*utils.RES,100*utils.RES)),
    Accion((340*utils.RES,265*utils.RES,70*utils.RES,100*utils.RES)),
    Accion((300*utils.RES,150*utils.RES,70*utils.RES,100*utils.RES)),
    Accion((350*utils.RES,350*utils.RES,150*utils.RES,150*utils.RES)),
    Accion((40*utils.RES,140*utils.RES,80*utils.RES,70*utils.RES)),
    Accion((330*utils.RES,100*utils.RES,160*utils.RES,70*utils.RES)),
    Accion((200*utils.RES,390*utils.RES,80*utils.RES,100*utils.RES)))
    encontrados = 0    
    show_dialog = False
    frame = 100
    
    while salir == 0:
    
    	# Pump GTK messages.
		while gtk.events_pending():
			gtk.main_iteration()
			
		for eventos in pygame.event.get():
			if eventos.type == QUIT:
				sys.exit(0)
			elif eventos.type == pygame.VIDEORESIZE:
			   pygame.display.set_mode(eventos.size, pygame.RESIZABLE)	
			elif eventos.type == MOUSEBUTTONDOWN:
				if btn_adelante.rect.collidepoint(pygame.mouse.get_pos()):
					salir = 12
					btn_adelante.sonido.play()	
				elif btn_atras.rect.collidepoint(pygame.mouse.get_pos()):
					salir = 10
					btn_atras.sonido.play()
				else:			
					for accion in acciones:
						if accion.rect.collidepoint(pygame.mouse.get_pos()):
							if accion.clicked == False:
								encontrados += 1
								accion.clicked = True
								accion.sonido.play()		
		
		# Realiza la animacion del texto			
		screen.blit(background_image, (0, 0))
		screen.blit(clase1, clase1_rect)
		if 20 < frame:
			screen.blit(titulo, titulo_rect)
			screen.blit(titulo_sub, titulo_sub_rect)
		if 50 < frame:
			screen.blit(linea1,linea1_rect)
			screen.blit(linea2,linea2_rect)
			screen.blit(linea3,linea3_rect)
			screen.blit(linea4,linea4_rect)
			screen.blit(linea5,linea5_rect)
			screen.blit(linea6,linea6_rect)
			screen.blit(linea7,linea7_rect)
		if 100 < frame:
			screen.blit(paisaje, (25*utils.RES,75*utils.RES))
			for accion in acciones:
				if accion.clicked: 
					pygame.draw.ellipse(screen,(255,0,0),accion.rect,4)
		screen.blit(btn_adelante.image, btn_adelante.rect)
		screen.blit(btn_atras.image, btn_atras.rect)
		screen.blit(cursor_picture, pygame.mouse.get_pos())
		pygame.display.flip()

		# Try to stay at 30 FPS
		clock.tick(30)
		frame = frame + 1
                	 
    return salir


# This function is called when the game is run directly from the command line:
# ./TestGame.py 
def main():
	
	pygame.init()
	screen = pygame.display.set_mode((int(800*utils.RES), int(520*utils.RES)), pygame.RESIZABLE) #pygame.display.get_surface() #

	# Fake a Sugar cursor for the pyGame canvas area
	pygame.mouse.set_cursor((8,8),(0,0),(0,0,0,0,0,0,0,0),(0,0,0,0,0,0,0,0))
	cursor_picture = pygame.image.load('images/standardcursor.png')
	cursor_picture.convert_alpha() 
	clock = pygame.time.Clock()
	dibujar(screen,cursor_picture,clock)

if __name__ == '__main__':
   main()
